nethackfandomcom-20200214-history
Source:NetHack 3.3.0/pcconf.h
Below is the full text to pcconf.h from the source code of NetHack 3.3.0. To link to a particular line, write [[NetHack 3.3.0/pcconf.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)pcconf.h 3.3 95/10/11 */ 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef PCCONF_H 6. #define PCCONF_H 7. 8. #define MICRO /* always define this! */ 9. 10. #ifdef MSDOS /* some of this material is MS-DOS specific */ 11. 12. /* 13. * Automatic Defines: 14. * 15. * __GO32__ is defined automatically by the djgpp port of gcc. 16. * __DJGPP__ is defined automatically by djgpp version 2 and above. 17. * _MSC_VER is defined automatically by Microsoft C. 18. * __BORLANDC__ is defined automatically by Borland C. 19. * __SC__ is defined automatically by Symantec C. 20. * Note: 3.3.0 was not verified with Symantec C. 21. */ 22. 23. /* 24. * The following options are somewhat configurable depending on 25. * your compiler. 26. */ 27. 28. /* 29. * For pre-V7.0 Microsoft Compilers only, manually define OVERLAY here. 30. */ 31. 32. /*#define OVERLAY /* Manual overlay definition (MSC 6.0ax only) */ 33. 34. # ifndef __GO32__ 35. #define MFLOPPY /* Support for floppy drives and ramdisks by dgk */ 36. # endif 37. 38. # define SHELL /* via exec of COMMAND.COM */ 39. 40. # ifdef __BORLANDC__ 41. #define PCMUSIC /* Music option, enable very basic pc speaker music notes */ 42. # endif 43. 44. /* 45. * Screen control options 46. * 47. * You may uncomment: 48. * ANSI_DEFAULT 49. * or TERMLIB 50. * or ANSI_DEFAULT and TERMLIB 51. * or NO_TERMS 52. */ 53. 54. /* # define TERMLIB /* enable use of termcap file /etc/termcap */ 55. /* or ./termcap for MSDOS (SAC) */ 56. /* compile and link in Fred Fish's termcap library, */ 57. /* enclosed in TERMCAP.ARC, to use this */ 58. 59. /* # define ANSI_DEFAULT /* allows NetHack to run without a ./termcap */ 60. 61. # define NO_TERMS /* Allows Nethack to run without ansi.sys by linking */ 62. /* screen routines into the .exe */ 63. 64. # ifdef NO_TERMS /* if NO_TERMS select one screen package below */ 65. #define SCREEN_BIOS /* Use bios calls for all screen control */ 66. /* #define SCREEN_DJGPPFAST /* Use djgpp fast screen routines */ 67. # endif 68. 69. 70. /* # define PC9800 /* Allows NetHack to run on NEC PC-9800 machines */ 71. /* Yamamoto Keizo */ 72. 73. 74. /* 75. * PC video hardware support options (for graphical tile support) 76. * 77. * You may uncomment any/all of the options below. 78. * 79. */ 80. # ifndef SUPPRESS_GRAPHICS 81. # if (defined(SCREEN_BIOS) || defined(SCREEN_DJGPPFAST)) && !defined(PC9800) 82. # ifdef USE_TILES 83. #define SCREEN_VGA /* Include VGA graphics routines in the build */ 84. # endif 85. # endif 86. # else 87. # undef NO_TERMS 88. # undef SCREEN_BIOS 89. # undef SCREEN_DJGPPFAST 90. # undef SCREEN_VGA 91. # undef TERMLIB 92. # define ANSI_DEFAULT 93. # endif 94. 95. # define RANDOM /* have Berkeley random(3) */ 96. 97. # define MAIL /* Allows for fake mail daemon to deliver mail */ 98. /* in the MSDOS version. (For AMIGA MAIL see */ 99. /* amiconf.h). In the future this will be the */ 100. /* hook for mail reader implementation. */ 101. 102. /*# define PC_LOCKING /* Allow confirmation before overwriting game */ 103. /* that is in progress or aborted when another */ 104. /* game is started with the same player name. */ 105. 106. /* The following is needed for prototypes of certain functions */ 107. 108. #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__SC__) 109. #include /* Provides prototypes of exit(), spawn() */ 110. #endif 111. 112. #if defined(__BORLANDC__) && defined(STRNCMPI) 113. #include /* Provides prototypes of strncmpi(), etc. */ 114. #endif 115. 116. #if defined(__DJGPP__) 117. #define _NAIVE_DOS_REGS 118. #include 119. #include /* Provides prototypes of strncmpi(), etc. */ 120. #endif 121. 122. /* 123. * On the VMS and unix, this option controls whether a delay is done by 124. * the clock, or whether it is done by excess output. On the PC, however, 125. * there is always a clock to use for the delay. The TIMED_DELAY option 126. * on MSDOS (without the termcap routines) is used to determine whether to 127. * include the delay routines in the code (and thus, provides a compile time 128. * method to turn off napping for visual effect). However, it is also used 129. * in the music code to wait between different notes. So it is needed in that 130. * case as well. 131. 132. * Whereas on the VMS and unix, flags.nap is a run-time option controlling 133. * whether there is a delay by clock or by excess output, on MSDOS it is 134. * simply a flag to turn on or off napping for visual effects at run-time. 135. */ 136. 137. #define TIMED_DELAY /* enable the `timed_delay' run-time option */ 138. 139. # ifdef PCMUSIC 140. #define TIMED_DELAY /* need it anyway */ 141. # endif 142. #endif /* MSDOS configuration stuff */ 143. 144. #define PATHLEN 64 /* maximum pathlength */ 145. #define FILENAME 80 /* maximum filename length (conservative) */ 146. #ifndef MICRO_H 147. #include "micro.h" /* contains necessary externs for os_name.c */ 148. #endif 149. 150. /* = 151. * The remaining code shouldn't need modification. 152. */ 153. 154. #ifndef SYSTEM_H 155. #include "system.h" 156. #endif 157. 158. #ifdef __GO32__ 159. #include /* close(), etc. */ 160. /* setmode is in io.h but lock() in io.h interferes with lock[] in decl.h */ 161. extern int FDECL(setmode, (int,int)); 162. #include /* kbhit() */ 163. #define PC_LOCKING 164. #endif 165. 166. # ifdef MSDOS 167. # ifndef EXEPATH 168. #define EXEPATH /* HACKDIR is .exe location if not explicitly defined */ 169. # endif 170. # endif 171. 172. # if defined(_MSC_VER) && defined(MSDOS) 173. # if (_MSC_VER >= 700) && !defined(FUNCTION_LEVEL_LINKING) 174. # ifndef MOVERLAY 175. #define MOVERLAY /* Microsoft's MOVE overlay system (MSC >= 7.0) */ 176. # endif 177. # endif 178. #define PC_LOCKING 179. # endif 180. 181. /* Borland Stuff */ 182. # if defined(__BORLANDC__) 183. # if defined(__OVERLAY__) && !defined(VROOMM) 184. /* __OVERLAY__ is automatically defined by Borland C if overlay option is on */ 185. #define VROOMM /* Borland's VROOMM overlay system */ 186. # endif 187. # if !defined(STKSIZ) 188. #define STKSIZ 5*1024 /* Use a default of 5K stack for Borland C */ 189. /* This macro is used in any file that contains */ 190. /* a main() function. */ 191. # endif 192. #define PC_LOCKING 193. # endif 194. 195. #ifdef PC_LOCKING 196. #define HLOCK "NHPERM" 197. #endif 198. 199. #ifndef index 200. # define index strchr 201. #endif 202. #ifndef rindex 203. # define rindex strrchr 204. #endif 205. 206. #ifndef AMIGA 207. #include 208. #endif 209. 210. #ifdef RANDOM 211. /* Use the high quality random number routines. */ 212. # define Rand() random() 213. #else 214. # define Rand() rand() 215. #endif 216. 217. #ifndef TOS 218. # define FCMASK 0660 /* file creation mask */ 219. #endif 220. 221. #include 222. 223. #ifndef REDO 224. # undef Getchar 225. # define Getchar nhgetch 226. #endif 227. 228. #ifdef MSDOS 229. # define TEXTCOLOR /* */ 230. # define PORT_HELP "msdoshlp.txt" /* msdos port specific help file */ 231. #endif 232. 233. 234. /* Sanity check, do not modify these blocks. */ 235. 236. /* OVERLAY must be defined with MOVERLAY or VROOMM */ 237. #if (defined(MOVERLAY) || defined(VROOMM)) 238. # ifndef OVERLAY 239. # define OVERLAY 240. # endif 241. #endif 242. 243. #if defined(FUNCTION_LEVEL_LINKING) 244. #define OVERLAY 245. #define OVL0 246. #define OVL1 247. #define OVL2 248. #define OVL3 249. #define OVLB 250. #endif 251. 252. #if defined(OVERLAY) && !defined(MOVERLAY) && !defined(VROOMM) && !defined(FUNCTION_LEVEL_LINKING) 253. #define USE_TRAMPOLI 254. #endif 255. 256. #if defined(MSDOS) && defined(NO_TERMS) 257. # ifdef TERMLIB 258. # if defined(_MSC_VER) || defined(__SC__) 259. # pragma message("Warning -- TERMLIB defined with NO_TERMS in pcconf.h") 260. # pragma message(" Forcing undef of TERMLIB") 261. # endif 262. #undef TERMLIB 263. # endif 264. # ifdef ANSI_DEFAULT 265. # if defined(_MSC_VER) || defined(__SC__) 266. # pragma message("Warning -- ANSI_DEFAULT defined with NO_TERMS in pcconf.h") 267. # pragma message(" Forcing undef of ANSI_DEFAULT") 268. # endif 269. #undef ANSI_DEFAULT 270. # endif 271. /* only one screen package is allowed */ 272. # if defined(SCREEN_BIOS) && defined(SCREEN_DJGPPFAST) 273. # if defined(_MSC_VER) || defined(__SC__) 274. # pragma message("Warning -- More than one screen package defined in pcconf.h") 275. # endif 276. # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__SC__) 277. # if defined(SCREEN_DJGPPFAST) 278. # if defined(_MSC_VER) || defined(__SC__) 279. # pragma message(" Forcing undef of SCREEN_DJGPPFAST") 280. # endif 281. #undef SCREEN_DJGPPFAST /* Can't use djgpp fast with other compilers anyway */ 282. # endif 283. # else 284. /* djgpp C compiler */ 285. # if defined(SCREEN_BIOS) 286. #undef SCREEN_BIOS 287. # endif 288. # endif 289. # endif 290. # define ASCIIGRAPH 291. # ifdef TEXTCOLOR 292. # define VIDEOSHADES 293. # endif 294. /* SCREEN_8514, SCREEN_VESA are only placeholders presently - sub VGA instead */ 295. # if defined(SCREEN_8514) || defined(SCREEN_VESA) 296. # undef SCREEN_8514 297. # undef SCREEN_VESA 298. # define SCREEN_VGA 299. # endif 300. /* Graphical tile sanity checks */ 301. # ifdef SCREEN_VGA 302. # define SIMULATE_CURSOR 303. # define POSITIONBAR 304. /* Select appropriate tile file format, and map size */ 305. # define PLANAR_FILE 306. # define SMALL_MAP 307. # endif 308. #endif /* End of sanity check block */ 309. 310. #if defined(MSDOS) && defined(DLB) 311. #define FILENAME_CMP stricmp /* case insensitive */ 312. #endif 313. 314. #ifdef MSC7_WARN /* define with cl /DMSC7_WARN */ 315. #pragma warning(disable:4131) 316. #endif 317. 318. #ifdef TIMED_DELAY 319. # ifdef __DJGPP__ 320. # define msleep(k) (void) usleep((k)*1000) 321. # endif 322. # ifdef __BORLANDC__ 323. # define msleep(k) delay(k) 324. # endif 325. # ifdef __SC__ 326. # define msleep(k) (void) usleep((long)((k)*1000)) 327. # endif 328. #endif 329. 330. #endif /* PCCONF_H */ pcconf.h